﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("1 统计 2 考试 3 排序 4 索引 5 九九乘法表 6 空心正方形 7 菱形 8 实心正方形 9 找偶数 10 有序数组 11 没有做");
            int a = int.Parse(Console.ReadLine());
            switch (a)
            {
                case 1:
                    Name1();
                    break;
                case 2:
                    Name2();
                    break;
                case 3:
                    Name3();
                    break;
                case 4:
                    Name4();
                    break;
                case 5:
                    Name5();
                    break;
                case 6:
                    Name6();
                    break;
                case 7:
                    Name7();
                    break;
                case 8:
                    Name8();
                    break;
                case 9:
                    Name9();
                    break;
                case 10:
                    Name10();
                    break;
                case 11:
                    Name11();
                    break;
            }
        }
        static void Name1()
        {
            //输入一行字符串，分别统计出其中英文字母、数字、空格的个数。
            Console.WriteLine("请输入一个字符串：");
            string a = Console.ReadLine();
            int qq = 0;
            int ww = 0;
            int ee = 0;
            foreach (var b in a)
            {
                if (char.IsLetter(b))
                {
                    qq++;
                }
                if (char.IsNumber(b))
                {
                    ww++;
                }
                if (char.IsWhiteSpace(b))
                {
                    ee++;
                }
            }
            Console.WriteLine("你输入的字符串中，英文字母有{0}个，数字有{1}个，空格有{2}个。", qq, ww, ee);
            Console.ReadKey();
        }
        static void Name2()
        {
            //在 Main 方法中创建一个 double 类型的数组，并在该数组中存入 5 名学生的考试成绩(控制台输入)，
            //计算总成绩和平均成绩。 要求使用foreach语句实现该功能
            double[] arr = new double[5];
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine("请输入第" + (i + 1) + "个同学的成绩：");
                double ri = double.Parse(Console.ReadLine());
                arr[i] = ri;
            }
            double sum = 0;
            double avg = 0;
            foreach (var c in arr)
            {
                sum = arr[0] + arr[1] + arr[2] + arr[3] + arr[4];
                avg = sum / 5;
            }
            Console.WriteLine(" 总成绩为" + sum);
            Console.WriteLine(" 平均成绩" + avg);
            Console.ReadKey();
        }
        static void Name3()
        {
            //定义一个方法，实现一维数组的排序功能，从大到小排序。(不要用Array类的方法)
            int[] arr = { 50, 10, 30, 20, 40 };
            int gjr = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = 0; j < arr.Length - 1 - i; j++)
                {
                    if (arr[j] < arr[j + 1])
                    {
                        gjr = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = gjr;
                    }
                }
            }
            Console.Write(arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] + " " + arr[4]);
            Console.ReadKey();
        }
        static void Name4()
        {
            //实现查找数组元素索引的功能。定义一个数组，然后控制台输入要查找的元素，
            //返回输入值在数组中最后一次出现的位置。若是找不到，请打印找不到。(不要用Array类的方法)
            int[] arr = { 10, 20, 30, 40, 50, 60 };
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i] + " ");
            }
            Console.WriteLine();
            Console.WriteLine("请输入一个数：");
            int gjr = int.Parse(Console.ReadLine());
            bool aa = false;
            int bb = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                if (gjr.Equals(arr[i]))
                {
                    aa = true;
                    bb = i;

                }
            }
            if (aa)
            {
                Console.WriteLine("你输入的数在数组中的位置为" + (bb + 1));
            }
            else
            {
                Console.WriteLine("找不到");
            }
            Console.ReadKey();
        }
        static void Name5()
        {
            //打印九九乘法表
            for (int i = 1; i < 10; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write(j + "*" + i + "=" + (i * j) + "\t");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        static void Name6()
        {
            //用户输入正方形边长，用*打印出空心正方形。
            Console.WriteLine("请输入正方形边长：");
            int a = int.Parse(Console.ReadLine());
            for (int i = 0; i < a; i++)
            {
                for (int j = 0; j < a; j++)
                {
                    if (i == 0 || i == a - 1 || j == 0 || j == a - 1)
                    {
                        Console.Write("* ");
                    }
                    else
                    {
                        Console.Write("  ");
                    }
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        static void Name7()
        {
            //打印菱形
            for (int i = 1; i < 4; i++)
            {
                for (int j = 0; j < 5-i; j++)
                {
                    Console.Write(" ");
                }
                for (int k = 1; k < 2*i; k++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
            for (int i = 1; i < 4; i++)
            {
                for (int j = 5; j > 3-i; j--)
                {
                    Console.Write(" ");
                }
                for (int k = 5; k > 2*i; k--)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        static void Name8()
        {
            //用户输入正方形边长，用*打印出实心正方形。
            Console.WriteLine("请输入正方形边长：");
            int a = int.Parse(Console.ReadLine());
            for (int i = 0; i < a; i++)
            {
                for (int j = 0; j < a; j++)
                {
                    Console.Write("* ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        static void Name9()
        {
            //在 Main 方法中创建一个字符串类型的数组，并存入 5 个值，然后将数组中下标是偶数的元素输出。
            string [] arr = new string [5];
            arr[0] = "我下标是0";
            arr[1] = "我下标是1";
            arr[2] = "我下标是2";
            arr[3] = "我下标是3";
            arr[4] = "我下标是4";
            for (int i = 0; i < arr.Length; i++)
            {
                if (i==0||i%2==0)
                {
                    Console.WriteLine(arr[i]);
                }
            }
            Console.ReadKey();
        }
        static void Name10()
        {
            //如果一个数组保存元素是有序的（从大到小），向这个数组中插入一个数，使得插入后的数组元素仍然保持有序。
            int[] arr = new int[5];
            arr[0]= 100; arr[1] = 80; arr[2] = 60; arr[3] = 40;
            Console.WriteLine("插入前：");
            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i]!=0)
                {
                    Console.Write(arr[i] + "  ");
                }
            }
            Console.WriteLine();
            Console.WriteLine("请输入一个数");
            arr[4] = int.Parse(Console.ReadLine());
            int a = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = 0; j < arr.Length-1-i; j++)
                {
                    if (arr[j] < arr[j + 1])
                    {
                        a = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = a;
                    }
                }
            }
            Console.WriteLine("输入后排序为：");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write(arr[i]+"  ");
            }           
            Console.ReadKey();
        }
        static void Name11()
        {
            //打印杨辉三角形
            Console.WriteLine("不会哎");
        }
    }
}
